﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Ares.Engine
{
    #region Events
    #region AddProgressEvent
    public class AddProgressEvent : EventArgs
    {
        public AddProgressEvent(string StatusText, long Progress, long Total, long TotalFileCount, long CurrentFileNo)
        {
            this.statustext = StatusText;
            this.progress = Progress;
            this.total = Total;
            this.totalFileCount = TotalFileCount;
            this.currentFileNo = CurrentFileNo;
        }

        public string StatusText
        {
            get
            {
                return (statustext);
            }
        }

        public long Progress
        {
            get
            {
                return (progress);
            }
        }

        public long Total
        {
            get
            {
                return (total);
            }
        }

        public long TotalFileCount
        {
            get
            {
                return (totalFileCount);
            }
        }

        public long CurrentFileNo
        {
            get
            {
                return (currentFileNo);
            }
        }

        string statustext;
        long progress;
        long total;
        long totalFileCount;
        long currentFileNo;
    }

    public delegate void AddProgressHandler(object sender, AddProgressEvent e);
    #endregion
    #region SaveProgressEvent
    public class SaveProgressEvent : EventArgs
    {
        public SaveProgressEvent(string StatusText, long Progress, long Total)
        {
            this.statustext = StatusText;
            this.progress = Progress;
            this.total = Total;
        }

        public string StatusText
        {
            get
            {
                return (statustext);
            }
        }

        public long Progress
        {
            get
            {
                return (progress);
            }
        }

        public long Total
        {
            get
            {
                return (total);
            }
        }
        string statustext;
        long progress;
        long total;
    }

    public delegate void SaveProgressHandler(object sender, SaveProgressEvent e);
    #endregion
    #region CalculationProgressEvent
    public class CalculationProgressEvent : EventArgs
    {
        public CalculationProgressEvent(string StatusText, long Progress, long Total)
        {
            this.statustext = StatusText;
            this.progress = Progress;
            this.total = Total;
        }

        public string StatusText
        {
            get
            {
                return (statustext);
            }
        }

        public long Progress
        {
            get
            {
                return (progress);
            }
        }

        public long Total
        {
            get
            {
                return (total);
            }
        }
        string statustext;
        long progress;
        long total;
    }

    public delegate void CalculationProgressHandler(object sender, CalculationProgressEvent e);
    #endregion
    #endregion
}
